export interface Star {
  id?: number;
  name?: string;
  image?: string;
  votes?: number;
  bio?: string;
}

// 明星数据服务
export class StarService {
  private static instance: StarService;
  private stars: Star[] = [
    { id: 1, name: '明星A', image: 'app.media.star1', votes: 0, bio: '明星A的详细介绍...' },
    { id: 2, name: '明星B', image: 'app.media.star2', votes: 0, bio: '明星B的详细介绍...' },
    { id: 3, name: '明星C', image: 'app.media.star3', votes: 0, bio: '明星C的详细介绍...' },
    { id: 4, name: '明星D', image: 'app.media.star1', votes: 0, bio: '明星D的详细介绍...' },
    { id: 5, name: '明星E', image: 'app.media.star2', votes: 0, bio: '明星E的详细介绍...' },
     { id: 6, name: '明星F', image: 'app.media.star3', votes: 0, bio: '明星C的详细介绍...' }

  ];

  private constructor() {}

  // 单例模式获取实例
  static getInstance(): StarService {
    if (!StarService.instance) {
      StarService.instance = new StarService();
    }
    return StarService.instance;
  }

  // 获取所有明星列表
  getAllStars(): Star[] {
    return [...this.stars];
  }

  // 根据ID获取明星详情
  getStarById(id: number): Star {
    return this.stars.find(star => star.id === id);
  }

  // 为明星投票
  voteForStar(id: number): boolean {
    const starIndex = this.stars.findIndex(star => star.id === id);
    if (starIndex !== -1) {
      this.stars[starIndex].votes++;
      return true;
    }
    return false;
  }

  // 获取投票结果（按票数排序）
  getVotingResults(): Star[] {
    return [...this.stars].sort((a, b) => b.votes - a.votes);
  }
}